package com.rabbit.eap.system.service;

import com.rabbit.eap.framework.common.api.ApiResult;
import com.rabbit.eap.framework.common.service.BaseService;
import com.rabbit.eap.system.dto.SysConfigDTO;
import com.rabbit.eap.system.entity.SysConfig;
import com.rabbit.eap.system.param.SysConfigPageParam;

/**
 * @projectName: eap
 * @packageName: com.rabbit.eap.system.service
 * @className: ISysConfigService
 * @author： rabbit
 * @version： 1.0
 * @since： 2020/06/06 23:34:01
 * <p>Description:
 * 参数配置表 服务类
 * </p>

 */
public interface ISysConfigService extends BaseService<SysConfig> {


    /**
     * @Description: 添加参数配置表
     * @methodName: saveSysConfig
     * @param sysConfigDTO:sysConfigDTO数据传输对象
     * @return: ApiResult
     * @throws Exception
     * @date: 2020/06/06 23:34:01
     * @author: rabbit
     */
    ApiResult saveSysConfig(SysConfigDTO sysConfigDTO) throws Exception;


    /**
     * @Description: 修改参数配置表
     * @methodName: modifySysConfig
     * @param  sysConfigDTO:sysConfigDTO数据传输对象
     * @return: ApiResult
     * @throws Exception
     * @date: 2020/06/06 23:34:01
     * @author: rabbit
     */
    ApiResult modifySysConfig(SysConfigDTO sysConfigDTO) throws Exception;

    /**
     * @Description: 删除参数配置表
     * @methodName: removeSysConfig
     * @param ids:ids集合
     * @return: ApiResult.result(flag)
     * @throws Exception
     * @date: 2020/06/06 23:34:01
     * @author: rabbit
     */
    ApiResult removeSysConfig(Long[] ids) throws Exception;

    /**
     * @Description: 根据Id获取参数配置表详情
     * @methodName: getSysConfigInfo
     * @param id: id
     * @return:  SysConfigVO
     * @throws Exception
     * @date: 2020/06/06 23:34:01
     * @author: rabbit
     */
    ApiResult getSysConfigById(Long id) throws Exception;

    /**
     * @Description: 参数配置表分页列表
     * @methodName: getSysConfigPageList
     * @param sysConfigPageParam
     * @return: Paging<SysConfigVO>
     * @throws Exception
     * @date: 2020/06/06 23:34:01
     * @author: rabbit
     */
    ApiResult getSysConfigPageList(SysConfigPageParam sysConfigPageParam) throws Exception;
    /**
     * @Description: 根据参数键名查询参数值
     * @methodName: getSysConfigByKey
     * @param configKey: 参数键名
     * @return: com.rabbit.eap.framework.common.api.ApiResult
     * @date: 2020/6/12 22:31
     * @author: rabbit
     *
     */
    SysConfig getSysConfigByKey(String configKey);
}
